Certain video-enabled computing systems may use multiple processing threads in order to achieve faster processing of video. To enable parallel processing of the same source data by a plurality of processing threads that may implement different video processing algorithms in a computer system, the source data may be replicated in a plurality of buffers allocated to the plurality of processing threads respectively. In this way, each processing thread may process the source data without interfering with the use of the source data by any other processing thread.
Replicating the source data into a plurality of buffers may involve a central processing unit (CPU) of the computer system reading the source data from memory and then writing the source data to the plurality of buffers. In video processing, for example, as video frame data is loaded into a frame buffer from a video file or an external device such as a camera, the CPU may read the frame data from the frame buffer and then write the frame data to the plurality of buffers for each video frame loaded. Thus, parallel processing on video may require a read/write operation by the CPU for each frame. Performing such read/write operations may decrease the overall performance of a parallel processing computing system.